﻿/*
 *      CentroVentasCore32  - CVCore32.dll
 *      
 *      Desarrollado por:
 *                      Francisco Acevedo.
 *                      David Avila.
 *                      José Pérez.
 *                      
 *      Todos los derechos reservados.
 */

/*
 *      CLASE: MainWindow   
 * Notas de versión:
 * 
 * [06-01-2012]
 *      -   Creacion de la clase. implementacion patron singleton.
 * [11-03-2012]
 *      -   Solucionado Logout.
 */
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using CVCore32.Class.Funciones.Usuarios;
using Microsoft.Windows.Controls.Ribbon;
using System.Windows.Threading;
using System;

namespace CentroVentas
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : RibbonWindow
    {


        CVCore32.Class.Core.Sesion sesion;
        public MainWindow()
        {
            InitializeComponent();
            sesion = CVCore32.Class.Core.Sesion.GetInstace;
            RibbonBar.IsMinimized = true;
            
            DispatcherTimer dt = new DispatcherTimer();
            dt.Tick += new EventHandler(dispatcherTimer_Tick);
            dt.Interval = new System.TimeSpan(0, 0, 1);
            dt.Start();
        }

        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            if (sesion.IdUsuario == 0)
            {
                txtUsuario.Text = "Sin identificar";
            }
            else
            {
                CVCore32.Data.Usuario usu = CVCore32.Class.Funciones.Usuarios.Usuario.getUsuario(sesion.IdUsuario);
                txtUsuario.Text = usu.NombreUsuario;
            }
            txtFecha.Text = DateTime.Now.ToShortDateString();
            txtHora.Text = DateTime.Now.ToLongTimeString();
        }


        private void RibbonWindow_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                RibbonBar.IsMinimized = true;
                CVCore32.Class.Core.Sesion sesion = CVCore32.Class.Core.Sesion.GetInstace;
                CVCore32.Data.electrondbEntities context;
                if (sesion.ServidorWeb)
                {
                    context = new CVCore32.Data.electrondbEntities("Data Source=72.18.135.49, 1533;Initial Catalog=electrondb;User Id=JotaEmePM;Password=ez881010;");
                }
                else
                {
                    context = new CVCore32.Data.electrondbEntities();
                }

                if (context.DatabaseExists())
                {
                    ContentFrame.Navigate(new Forms.Login());
                }
                else
                {
                    MessageBox.Show("La base de datos no se encuentra disponible.");
                    App.Current.Shutdown();
                }
            }
            catch (System.Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

        private void btnArchivoPrincipalCerrarSesion_Click(object sender, RoutedEventArgs e)
        {
            CVCore32.Data.Usuario user = Usuario.getUsuario(sesion.IdUsuario);
            if (sesion.IdUsuario != 0)
            {
                
                RibbonBar.IsMinimized = true;
                ContentFrame.Navigate(new Forms.Login(user.Rut));
            }
            else
            {
                RibbonBar.IsMinimized = true;
                ContentFrame.Navigate(new Forms.Login());
            }
        }

        private void ContentFrame_Navigating(object sender, NavigatingCancelEventArgs e)
        {
            if (e.Content.ToString() == "CentroVentas.Forms.Login")
            {
                RibbonBar.IsCollapsed = true;
            }
            else
            {
                RibbonBar.IsCollapsed = false;
            }
        }

        private void btnOpcionesGenerales_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("CONFIGURACION");
        }

        private void btnComprasGenerarCompra_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Compras.FrmGenerarCompra());
        }

        private void btnMinimizeButton_Click(object sender, RoutedEventArgs e)
        {
            RibbonBar.IsMinimized = !RibbonBar.IsMinimized;
        }

        private void btnHome_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Principal());
        }

        private void btnCrearProveedores_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Proveedor.FrmProveedorCrear());
        }

        private void btnProveedoresListar_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Proveedor.FrmProveedorListar(string.Empty));
        }

        private void btnDetallarProveedor_Click(object sender, RoutedEventArgs e)
        {
            // Mostrar detalles del proveedor, ej. 
            // fechas de compra, valores. comentarios. Muestra de orden de compra.
        }

        private void Compras_Click(object sender, RoutedEventArgs e)
        {

        }

        private void BtnConfirmarCompra_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Compras.FrmConfirmarCompra());
        }

        private void BtnCompras_Click(object sender, RoutedEventArgs e)
        {
            //ContentFrame.Navigate(new Forms.Compras.FrmListarCompras());
        }

        private void btnAddCategorias_Click(object sender, RoutedEventArgs e)
        {
            
        }

        private void btnCategoras_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Categorias.FrmCategorias());
        }

        private void btnVentasVentas_Click(object sender, RoutedEventArgs e)
        {
            ContentFrame.Navigate(new Forms.Venta.Venta());
        }
    }
}
